package com.project.mapper;

import com.project.bean.UserBean;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;

public interface IUserMapper {
    /**
     * 添加
     * @param user 用户对象
     */
    public void add (UserBean user);

    /**
     * 按id删除
     * @param id 用户id
     */
    public void del(Integer id);

    /**
     * 登陆查询
     * @param name 用户名
     * @param pwd 密码
     * @return 用户对象
     */
    public UserBean landFind(@Param("name") String name,@Param("pwd") String pwd);

    /**
     * 按id查询
     * @param id 用户id
     * @return 用户对象
     */
    public UserBean findById(Integer id);

    /**
     * 按id修改密码，等级
     * @param id 用户id
     * @param pwd 用户密码
     * @param grade 用户等级
     */
    public void update(@Param("id") Integer id ,@Param("password") String pwd , @Param("grade") String grade);

    /**
     * 查询动态分页对象
     * @param name 用户名
     * @param startDate 起始时间
     * @param endDate 结束时间
     * @param page1 查询段
     * @param page2  查询段
     * @return 对象集合
     */
    public List<UserBean> cutList(@Param("name") String name,@Param("startDate") LocalDate startDate,
                                  @Param("endDate") LocalDate endDate, @Param("page1") Integer page1,@Param("page2") Integer page2);

    /**
     * 动态查询分页对象总数
     * @param name 用户名
     * @param startDate 起始时间
     * @param endDate 结束时间
     * @return 总数
     */
    public int cutCount(@Param("name") String name,@Param("startDate") LocalDate startDate,
                        @Param("endDate") LocalDate endDate);
}
